#[macro_use]
extern crate serde;
extern crate tokio;

#[macro_use]
pub mod wdlog;
#[macro_use]
pub mod app;
pub mod cmd;
pub mod conf;

#[tokio::main]
#[allow(unreachable_code)]
async fn main() -> std::io::Result<()> {
    let err = cmd::cmd_init::Exec::new()
        //.default(cmd::util::default)
        .exit(cmd::util::exit)
        .registered("run", cmd::run::run)
        .registered("version", cmd::util::version)
        .run();
    log_panic_result!(err);
    Ok(())
}
